import api from '../index'

/**
 * 定义校园新闻接口
 */
export interface CampusNews {
  newsId: number
  newsTitle: string
  schoolId: number
  schoolName?: string // 学校名称
  userId?: number
  content: string
  createdAt?: string
  updatedAt?: string
  newsUrl: string
  totalLikes?: number
  pageView?: number
}

export default {
  /**
   * 获取校园新闻列表
   * @param data - 查询参数
   * @param data.newsTitle - 可选，按新闻标题模糊查询
   * @param data.page - 可选，页码，从1开始
   * @param data.size - 可选，每页条数
   * @returns 校园新闻列表
   */
  list: (data: { newsTitle?: string, page?: number, size?: number }) => api.get(`/system/campusnews/list`, {
    params: {
      newsTitle: data.newsTitle,
      pageSize: data.size,
      pageNum: data.page,
    },
  }),

  /**
   * 获取新闻详情
   * @param id - 新闻ID
   * @returns 新闻详情数据
   */
  detail: (id: number | string) => api.get<CampusNews>(`/system/campusnews/getInfo`, {
    params: {
      newsId: id,
    },
  }),

  /**
   * 创建新闻
   * @param data - 新闻数据
   * @param data.newsTitle - 新闻标题
   * @param data.schoolId - 所属学校ID
   * @param data.content - 新闻内容
   * @param data.newsUrl - 新闻链接
   * @returns 创建结果
   */
  create: (data: CampusNews) => api.post('/system/campusnews/add', data, {
  }),

  /**
   * 编辑新闻
   * @param data - 新闻数据
   * @param data.newsId - 新闻ID
   * @param data.newsTitle - 新闻标题
   * @param data.content - 新闻内容
   * @returns 编辑结果
   */
  edit: (data: CampusNews) => api.post('/system/campusnews/edit', data, {
  }),

  /**
   * 删除新闻
   * @param id - 要删除的新闻ID
   * @returns 删除结果
   */
  delete: (id: number | string) => api.get(`/system/campusnews/del`, {
    params: {
      newsId: id,
    },
  }),
}
